package com.zjsru.leetcode75.level1;

/**
 * @Author: cookLee
 * @Date: 2023-10-04
 * 盛最多水的容器
 */
public class MaxArea {

    /**
     * 主
     * 输入：[1,8,6,2,5,4,8,3,7]
     * 输出：49
     * 解释：图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下，容器能够容纳水（表示为蓝色部分）的最大值为 49
     * \
     * 输入：height = [1,1]
     * 输出：1
     *
     * @param args args
     */
    public static void main(String[] args) {
        MaxArea maxArea = new MaxArea();
        int[] height = new int[]{1,8,6,2,5,4,8,3,7};
        System.out.println(maxArea.maxArea(height));
    }

    public int maxArea(int[] height) {
        int ans = 0;
        int i = 0, j = height.length - 1;
        while (i < j) {
            //按照长板短板获取对应的各状态下的面积，短板向内移动时不会减去面积的最大值
            ans = height[i] < height[j] ? Math.max(ans, (j - i) * height[i++]) : Math.max(ans, (j - i) * height[j--]);
        }
        return ans;
    }
}
